package com.sporadic.backstage.service.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sporadic.backstage.entity.Dishes;
import com.sporadic.backstage.mapper.DishesMapper;
import com.sporadic.backstage.service.DishesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class DishesServiceImpl implements DishesService {
    @Autowired
    private DishesMapper dishesMapper;

    /**
     * 根据菜品名分页查询菜品信息
     * @param page 分页信息
     * @param map 商家编号 菜品名 查询条件
     * @return IPage对象
     */
    @Override
    public IPage<Dishes> selDishesByDname(Page page, Map map) {
        return dishesMapper.selDishesByDname(page, map);

    }

    /**
     * 添加菜品
     * @param dishes 菜品详情
     * @return 受影响的行数 大于0添加成功,否则失败
     */
    @Override
    public Integer addDishes(Dishes dishes) {
       return dishesMapper.addDishes(dishes);
    }
    /**
     * 批量删除菜品
     * @param list 菜品编号
     * @return 受影响的行数 大于0删除成功,否则失败
     */
    @Override
    public Integer delDishesByID(List list) {
        return dishesMapper.delDishesById(list);
    }

    /**
     * 修改菜品信息
     * @param dishes 菜品信息详情
     * @return 受影响的行数 大于0修改成功,否则失败
     */
    @Override
    public Integer upDishesBy(Dishes dishes) {
        QueryWrapper<Dishes> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("dishes_id",dishes.getDishesId());
        return  dishesMapper.update(dishes,queryWrapper);
    }

    /**
     * 查询商家菜品种类总数
     * @param dishes_merchant 商家编号
     * @return 种类总数量
     */
    @Override
    public Integer dishesCount(Integer dishes_merchant) {
        return dishesMapper.dishesCount(dishes_merchant);
    }

    /**
     * 查询商家库存低于指定数的种类总数
     * @param map 低于指定数
     * @return 菜品信息
     */
    @Override
    public  IPage<Dishes> selByInventory_DishesCount(Page page ,Map map) {
        return dishesMapper.selByInventory_DishesCount(page,map);
    }

    @Override
    public int modifyDishesStatus(List list) {
        return dishesMapper.modifyDishesStatus(list);
    }
}
